package com.gpt.article.service.impl;

import java.util.List;
import java.util.Map;

import com.gpt.article.domain.GptFunPrompts;
import com.gpt.article.domain.GptGenArticleTask;
import com.gpt.article.mapper.GptFunPromptsMapper;
import com.gpt.article.mapper.GptGenArticleTaskMapper;
import com.gpt.article.service.impl.taskHandle.GenTask;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gpt.article.mapper.GptSpiderArticleTitleMapper;
import com.gpt.article.domain.GptSpiderArticleTitle;
import com.gpt.article.service.IGptSpiderArticleTitleService;

/**
 * 采集文章标题，爆款标题Service业务层处理
 * 
 * @author zhuzi
 * @date 2023-10-24
 */
@Service
public class GptSpiderArticleTitleServiceImpl implements IGptSpiderArticleTitleService
{
    @Autowired
    private GptSpiderArticleTitleMapper gptSpiderArticleTitleMapper;
    @Autowired
    private GptGenArticleTaskMapper gptGenArticleTaskMapper;

    @Autowired
    private  GptFunPromptsMapper gptFunPromptsMapper;
    /**
     * 查询采集文章标题，爆款标题
     * 
     * @param id 采集文章标题，爆款标题主键
     * @return 采集文章标题，爆款标题
     */
    @Override
    public GptSpiderArticleTitle selectGptSpiderArticleTitleById(Long id)
    {
        return gptSpiderArticleTitleMapper.selectGptSpiderArticleTitleById(id);
    }

    /**
     * 查询采集文章标题，爆款标题列表
     * 
     * @param gptSpiderArticleTitle 采集文章标题，爆款标题
     * @return 采集文章标题，爆款标题
     */
    @Override
    public List<GptSpiderArticleTitle> selectGptSpiderArticleTitleList(GptSpiderArticleTitle gptSpiderArticleTitle)
    {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        String acc = user.getUserName();
        gptSpiderArticleTitle.setCreateBy(acc);
        return gptSpiderArticleTitleMapper.selectGptSpiderArticleTitleList(gptSpiderArticleTitle);
    }
    /**
     * 获取用户账号
     * @return
     */
    public String getLoginUser() {
        String acc ="";
        SysUser user = SecurityUtils.getLoginUser().getUser();
        acc = user.getUserName();
        return acc;
    }
    /**
     * 新增采集文章标题，爆款标题
     * 
     * @param gptSpiderArticleTitle 采集文章标题，爆款标题
     * @return 结果
     */
    @Override
    public int insertGptSpiderArticleTitle(GptSpiderArticleTitle gptSpiderArticleTitle)
    {
        gptSpiderArticleTitle.setCreateTime(DateUtils.getNowDate());
        return gptSpiderArticleTitleMapper.insertGptSpiderArticleTitle(gptSpiderArticleTitle);
    }

    /**
     * 修改采集文章标题，爆款标题
     * 
     * @param gptSpiderArticleTitle 采集文章标题，爆款标题
     * @return 结果
     */
    @Override
    public int updateGptSpiderArticleTitle(GptSpiderArticleTitle gptSpiderArticleTitle)
    {
        gptSpiderArticleTitle.setUpdateTime(DateUtils.getNowDate());
        return gptSpiderArticleTitleMapper.updateGptSpiderArticleTitle(gptSpiderArticleTitle);
    }

    /**
     * 批量删除采集文章标题，爆款标题
     * 
     * @param ids 需要删除的采集文章标题，爆款标题主键
     * @return 结果
     */
    @Override
    public int deleteGptSpiderArticleTitleByIds(Long[] ids)
    {
        return gptSpiderArticleTitleMapper.deleteGptSpiderArticleTitleByIds(ids);
    }

    /**
     * 删除采集文章标题，爆款标题信息
     * 
     * @param id 采集文章标题，爆款标题主键
     * @return 结果
     */
    @Override
    public int deleteGptSpiderArticleTitleById(Long id)
    {
        return gptSpiderArticleTitleMapper.deleteGptSpiderArticleTitleById(id);
    }

    /**
     * 生成商品标题
     * @param map
     * @return
     */
    @Override
    public int genGptContent(Map<String,Object> map){
        Integer oneToNum = Integer.valueOf(String.valueOf(map.get("oneToNum")));
        Long psId = Long.valueOf(String.valueOf(map.get("psId")));

        String keyWords = String.valueOf(map.get("keyWords"));

        GptGenArticleTask genArticleTask = new  GptGenArticleTask();
        genArticleTask.setProce(0);
        genArticleTask.setArticleNum(oneToNum);
        genArticleTask.setStatus("1");
        genArticleTask.setSuccessNum(0);
        genArticleTask.setErrorNum(0);
        genArticleTask.setCreateTime(DateUtils.getNowDate());
        Long taskId = gptGenArticleTaskMapper.insertGptGenArticleTask(genArticleTask);

        //提示词功能
        GptFunPrompts gptFunPrompts = gptFunPromptsMapper.selectGptFunPromptsById(psId);

        String acc = SecurityUtils.getUsername();
        //洗稿任务
        Integer xigaoAllNum = new GenTask().createContentByKeyWors(taskId,map,gptFunPrompts,acc);
        return oneToNum;

    }


}
